﻿
using Dora.Orm.Core.Domain.Entities;
using Dora.Services.AdminUser.Dto.QueryDto;
using Dora.Services.AdminUser.Entities;
using Dora.Tools.Utility.Const;
using Surging.Core.Common;
using Surging.Core.CPlatform.Ioc;
using Surging.Core.CPlatform.Runtime.Server.Implementation.ServiceDiscovery.Attributes;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace Dora.Services.AdminUser.IApplication
{
    /// <summary>
    /// 旅行社组织机构用户映射表服务接口
    /// </summary>
    [ServiceBundle("api/" + DoraModuleName.AdminUser + "/{Service}")]
    public interface ITasOrgUserMapService : IServiceKey
    {

        /// <summary>
        /// 根据Id获取一个实体对象
        /// </summary>
        /// <param name="userId"></param>
        /// <param name="orgId"></param>
        /// <returns></returns>
        [Service(Date = "2019-08-13", Director = "TTTan", Name = "根据Id获取一个实体对象")]
        Task<TasOrgUserMapEntity> GetById(Guid userId, int orgId);

        /// <summary>
        /// 根据orgId获取org的负责人TasOrgUserMap
        /// </summary>
        /// <param name="orgId"></param>
        /// <returns></returns>
        [Service(Date = "2019-07-19", Director = "TTTan", Name = "根据orgId获取org的负责人TasOrgUserMap")]
        Task<TasOrgUserMapEntity> GetOrgLeaderByOrgId(int orgId);

        /// <summary>
        /// 修改是否需要编辑出团通知书
        /// </summary>
        /// <param name="userId"></param>
        /// <param name="orgId"></param>
        /// <param name="isEditDepartureNotice"></param>
        /// <returns></returns>
        [Service(Date = "2019-07-19", Director = "TTTan", Name = "修改是否需要编辑出团通知书")]
        Task<bool> UpdateIsEditDepartureNotice(Guid userId, int orgId, bool isEditDepartureNotice);

        /// <summary>
        /// 根据orgIdList获取TasOrgUserMapList
        /// </summary>
        /// <param name="orgIdList"></param>
        /// <returns></returns>
        [Service(Date = "2019-09-11", Director = "TTTan", Name = "根据orgIdList获取TasOrgUserMapList")]
        Task<List<TasOrgUserMapEntity>> GetListByOrgIdList(List<int> orgIdList);
    }
}
